package com.wk.code.wkserver.service;

import com.wk.code.wkserver.entity.UserInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.wk.code.wkserver.request.app.SetCustomerRequest;
import com.wk.code.wkserver.request.app.UserInfoRequest;
import com.wk.code.wkserver.request.app.WxUserInfoRequest;
import com.wk.code.wkserver.response.app.UserInfoDetailResponse;

/**
 * <p>
 * 用户基本信息表 服务类
 * </p>
 *
 * @author wq
 * @since 2021-08-15
 */
public interface IUserInfoService extends IService<UserInfo> {

    /**
     * 创建用户基本信息
     *
     * @param userId  用户ID
     * @param request 用户信息
     */
    void createUserInfo(Integer userId, WxUserInfoRequest request);

    /**
     * 更新用户信息
     *
     * @param userId  用户ID
     * @param request 请求参数
     */
    void updateUserInfo(Integer userId, UserInfoRequest request);

    /**
     * 申请成为用户信息
     *
     * @param userId  用户ID
     * @param request 请求参数
     */
    void applyTechUser(Integer userId, UserInfoRequest request);

    /**
     * 个人资料
     *
     * @param userId 用户ID
     * @return UserInfoDetailResponse
     */
    UserInfoDetailResponse detail(Integer userId);


    /**
     * 设置成为客服
     *
     * @param request 请求参数
     */
    void setCustomer(SetCustomerRequest request);


    /**
     * 封禁用户
     *
     * @param userId 用户ID
     */
    void prohibitUser(Integer userId);

}
